<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>sm2</title>
    <!--    <script th:src="@{/js/sm2/sm2.js}"></script>-->
    <!--    <script th:src="@{/js/jquery.min.js}"></script>-->

    <script src="../static/js/sm2/sm2.js"></script>
    <script src="../static/js/jquery.min.js"></script>
</head>
<body>
<h1>SM2 (可以将加密后的数据与后台sm2工具类执行的数据进行对比 【加密添加 04原因是 为了与后端加解密一致】)</h1>
<button onclick="reset()">重置</button>
<br>
当前sm2公钥：<span id="publicKey"></span>
<br>
当前sm2私钥：<span id="privateKey"></span>
<br>
<div class="toolbar">

    <input style="width: 500px; height: 25px" type="text" value="Hello Word 杰 @ 4" placeholder="请输入当前要加密的文本"
           id="encode-text"/>
    <button onclick="generateCipher()">生成密文</button>
    <br>

    <input style="width: 500px; height: 25px" type="text" placeholder="请输入加密后的文本"
           id="encode-data"/>
    <button onclick="restoreCipher()">解密</button>
    <br>
    <hr/>

    加密后的数据：<textarea style="width: 500px; height: 60px" type="text" placeholder="加密后的数据" id="encryptData"></textarea>
    <br>
    <br>
    <br>
    解密后的数据：<textarea style="width: 500px; height: 25px" type="text" placeholder="解密后的数据"
                     id="decryptData"></textarea><br>

</div>

<script>
    // 公钥
    var pubkeyHex =
        "04ECDBEEE485DFC39DDC30C373FA012FC5A1DCAB0CA6210300ABE0DEDDB03096462D9902F293031BC1A521F5943DA0E9AB0291BBDD95CACA240D25E51BAB84B520";
    // 私钥
    var privateKey = "0087D625FED740CFBC748678379FB5C202C6D947E7296683A5F38C4F06E09ED73E";


    $(function () {
        $('#publicKey').html(pubkeyHex);
        $('#privateKey').html(privateKey);
    })

    /**
     * 产生密码
     * */
    function generateCipher() {
        var data = $('#encode-text').val();
        var encryptSM = encryptSM2(data);
        $('#encryptData').val(encryptSM);
    }

    /**
     * 恢复密码
     * */
    function restoreCipher() {
        var data = $('#encode-data').val();
        var decryptSM = decryptSM2(data);
        $('#decryptData').val(decryptSM);
    }

    /**
     * 重置文本框
     * */
    function reset() {

        $("#encode-text").val("Hello Word 杰 @ 4");
        $("#encode-data").val("");

        $('#encryptData').val("");
        $('#decryptData').val("");

    }

    /**
     * sm2加密方法
     */
    function encryptSM2(content) {
        if (content == null) {
            return null;
        }
        var encryptData = "04" + sm2.doEncrypt(content, pubkeyHex, 1); // 加密结果
        return encryptData;
    }

    /**
     *sm2解密方法
     */
    function decryptSM2(content) {
        if (content == null) {
            return null;
        }
        var substring = content.substring(2);
        var decryptData = sm2.doDecrypt(substring.toLowerCase(), privateKey.toLowerCase(), 1); // 解密结果
        return decryptData;
    }

</script>


</body>
</html>